import java.io.Serializable;
import java.util.ArrayList;

public class Evento implements Serializable {
	
	private String nome;
	private String data;
	private String horario;
	private String duracao;
	private String descricao;
	private ArrayList<Contato> contatosDoEvento;
	
	public Evento(String nome, String data, String horario, String duracao, String descricao) throws Exception{
		if(nome == null || nome == ""){
			throw new Exception("Nome nao pode ser vazio ou nulo.");
		}
		if(data == null || data == ""){
			throw new Exception("Data nao poder ser vazia ou nula.");
		}
		if(horario == null || horario == ""){
			throw new Exception("Horario nao pode ser vazio ou nulo.");
		}
		if(duracao == null){
			throw new Exception("Duracao nao pode ser vazia ou nula.");
		}
		if(descricao == null){
			throw new Exception("Descricao nao pode ser vazia ou nula.");
		}
		this.nome = nome;
		this.data = data;
		this.horario = horario;
		this.duracao = duracao;
		this.descricao = descricao;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getData() {
		return data;
	}

	public void setData(String data) {
		this.data = data;
	}

	public String getHorario() {
		return horario;
	}

	public void setHorario(String horario) {
		this.horario = horario;
	}

	public String getDuracao() {
		return duracao;
	}

	public void setDuracao(String duracao) {
		this.duracao = duracao;
	}

	public String getDescricao() {
		return descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}
	
	public boolean adicionaContato(Contato c){
		return contatosDoEvento.add(c);
	}
	
	public ArrayList<Contato> getContatosDoEvento() {
		return contatosDoEvento;
	}

	public String toString(){
		return "Nome: "+getNome()+", Data: "+getData()+", Horario: "+getHorario()+", Duracao: "+getDuracao()+", Descricao: "+getDescricao();
	}
	
	public boolean equals(Object objeto){
		if(!(objeto instanceof Evento)){
			return false;
		}
		Evento e = (Evento) objeto;
		return getHorario() == e.getHorario() && getData() == e.getData();
	}
}

